.bookingConfirm_container {
  /* margin-top: 80px; */
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 2;

  /* aspect-ratio: 1440 / 820; */
}

.bookingConfirm {
  background-image: linear-gradient(
    180deg,
    #211b53 0%,
    #09357e 49.52%,
    #004a66 100%
  );
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.bookingConfirm_container_bg {
  width: 100%;
  /* background-image: url(../images/checkout_bg.png); */
  background-repeat: no-repeat;
  /* padding-inline: 10%; */
  position: relative;
  display: flex;
  /* justify-content: center; */
  /* align-items: center; */
  /* padding-block: -21%; */
  background-size: 120% auto;
  /* overflow: hidden; */
  /* aspect-ratio: 1440 / 573; */
  flex-direction: column;
}

.bookingDetail_bottom img {
  width: 100%;
  max-width: 810px;
  margin-bottom: -7px;
}

.bookingConfirm .bookingDetail_bottom {
  width: 100%;
  max-width: 980px;
  position: absolute;
  bottom: 0;
  background-image: url(../images/2026images/booking-confirmed-visual.png);
  background-position: center bottom -125px;
  background-size: contain;
  background-repeat: no-repeat;
  aspect-ratio: 980 / 460;
  pointer-events: none;
  z-index: 2;
}

.bookingConfirm_container_bg_content {
  width: min(608px, 100%);
  height: auto;
  margin-inline: auto;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.bookingConfirm_container_bg_content_title::before {
  content: "";
  width: 56px;
  height: 56px;
  display: block;
  background-image: url(../images/2026images/santa-heading-star.svg);
  background-size: 100% auto;
  background-repeat: no-repeat;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.bookingConfirm_container_bg_content_title {
  width: min(427px, 100%);
  padding: 72px 32px 16px;
  color: #f1c683;
  text-align: center;
  font-family: "Playfair Display", "Noto Sans TC", serif;
  font-size: 24px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.5;
  position: relative;
  margin: 0;
}

.bookingConfirm_container_bg_content_desc_container {
  width: 100%;
  margin: 36px 0 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.bookingConfirm_container_bg_content_desc {
  text-align: center;
  max-width: 608px;
  margin: 0;
  color: #fcfcfc;
  font-family: Inter, "Noto Sans TC";
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.bookingConfirm_container_bg_content_desc a {
  color: inherit;
}

.bookingConfirm_container_bg_content_desc:nth-of-type(2) {
  margin-bottom: 0;
}
.bookingConfirm .btnWrapper {
  width: 100%;
  margin-top: 36px;
  z-index: 3;
  position: relative;
  display: flex;
  justify-content: center;
}

.bookingConfirm .btnWrapper .btnContainer.goldButton {
  flex: 0 1 340px;
  width: 340px;
  height: 44px;
  padding: 8px 16px;
  letter-spacing: 0;
  text-align: center;
  text-transform: none;
}

.bookingConfirm .btnWrapper .btnContainer.goldButton:hover,
.bookingConfirm .btnWrapper .btnContainer.goldButton.is-bounce-hover {
  filter: none;
  transform: none;
}

.bookingConfirm .btnWrapper .btnContainer.goldButton:focus-visible {
  outline: 2px solid #fcfcfc;
  outline-offset: 3px;
}

.bookingConfirm_container_bg_bottom_deco {
  width: 100%;
  height: 32%;
  position: relative;
}

.bookingConfirm .bookingDetail_container {
  min-height: max(100svh, 960px);
  width: 100%;
  height: unset;
  background-image: linear-gradient(
    180deg,
    #211b53 0%,
    #09357e 49.52%,
    #004a66 100%
  );
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  display: flex;
  align-items: center;
  flex-direction: column;
  padding: 150px 16px 0px;
  padding-top: 150px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  z-index: 2;
}

.bookingConfirm .bookingDetail_container::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: clamp(280px, 40vw, 576px);
  background: url(../images/2026images/pp-xmas-2026-bottom-bg.png) center
    bottom -125px / 100% auto no-repeat;
  pointer-events: none;
  z-index: 0;
}

.bookingConfirm_bg_stars {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.bookingConfirm_bg_star {
  position: absolute;
  transform-origin: center;
}

.bookingConfirm_bg_star_large {
  top: 56.5%;
  left: 13.2%;
  width: clamp(60px, 8.334vw, 120px);
  height: clamp(69px, 9.551vw, 138px);
  transform: rotate(180deg);
}

.bookingConfirm_bg_star_medium {
  top: calc(46.9% + clamp(6px, 0.799vw, 11.5px));
  left: calc(84.3% + clamp(7px, 0.972vw, 14px));
  width: clamp(40px, 4.861vw, 70px);
  height: clamp(46px, 5.572vw, 80.23px);
  transform: rotate(-25.831217deg);
}

.bookingConfirm_bg_star_small {
  top: calc(63.1% - clamp(1px, 0.109vw, 1.57px));
  left: calc(75.8% + clamp(2px, 0.228vw, 3.28px));
  width: clamp(20px, 2.361vw, 34px);
  height: clamp(23px, 2.706vw, 38.97px);
  transform: rotate(87.248509deg);
}

.bookingConfirm .bookingConfirm_container {
  z-index: 3;
}

.zh-hk .bookingConfirm_container_bg_content_title br {
  display: none;
}

.myBooking .bookingConfirm_container_bg_content .divisonLine_green {
  width: 100%;
}

body.myBooking .bookingConfirm_container {
  height: calc(100svh - 35px);
  min-height: 600px;
  margin-top: 35px;
}

@media (min-width: 961px) {
  body.myBooking .bookingConfirm_container {
    height: max(calc(100svh - 35px), 912px);
    min-height: 912px;
  }
}

body.myBooking.bookingConfirmActive .bookingDetail_container,
body.myBooking
  .bookingDetail_container:has(
    > .bookingConfirm_container:not([style*="display: none"])
  ) {
  padding-bottom: 0;
}

body.myBooking .bookingConfirm_container .bookingConfirm_container_bg_content {
  width: min(608px, 100%);
  padding: 0;
  border-radius: 0;
  background: transparent;
}

body.myBooking
  .bookingConfirm_container
  .bookingConfirm_container_bg_content_title {
  width: min(427px, 100%);
  margin: 0;
  padding: 72px 32px 16px;
  color: #f1c683;
  font-family: "Playfair Display", "Noto Sans TC", serif;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

body.myBooking
  .bookingConfirm_container
  .bookingConfirm_container_bg_content_desc_container {
  width: 100%;
  margin: 36px 0 0;
  gap: 16px;
}

body.myBooking
  .bookingConfirm_container
  .bookingConfirm_container_bg_content_desc {
  max-width: 608px;
  margin: 0;
  color: #fcfcfc;
  font-family: Inter, "Noto Sans TC", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.4;
}

body.myBooking
  .bookingConfirm_container
  .bookingConfirm_container_bg_content_desc.desc1 {
  margin: 0;
}

body.myBooking .bookingConfirm_container .btnWrapper {
  width: 100%;
  margin-top: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.myBooking .bookingConfirm_container .btnWrapper .btnContainer.goldButton {
  display: flex;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
  width: 340px;
  height: 44px;
  padding: 8px 16px;
  text-align: center;
  text-decoration: none;
  text-transform: none;
}

body.myBooking
  .bookingConfirm_container
  .btnWrapper
  .btnContainer.goldButton:hover {
  filter: none;
  transform: none;
}

body.myBooking
  .bookingConfirm_container
  .btnWrapper
  .btnContainer.goldButton:focus-visible {
  outline: 2px solid #fcfcfc;
  outline-offset: 3px;
}

body.myBooking .bookingConfirm_container .bookingDetail_bottom {
  width: 100%;
  max-width: 980px;
  aspect-ratio: 980 / 460;
  position: absolute;
  bottom: 0;
  left: 50%;
  display: block;
  background: url(../images/2026images/booking-confirmed-visual.png) center
    bottom -125px / contain no-repeat;
  pointer-events: none;
  transform: translateX(-50%);
  z-index: 2;
}

.bookingConfirm .btnWrapper .btnContainer.goldButton {
  flex: none;
}

@media (max-width: 960px) {
  body.bookingConfirm {
    display: flex;
    flex-direction: column;
  }

  body.myBooking .bookingConfirm_container {
    height: calc(100svh - 35px);
    min-height: 600px;
  }

  body.myBooking
    .bookingConfirm_container
    .bookingConfirm_container_bg_content {
    width: 100%;
    padding-inline: 16px;
  }

  body.myBooking
    .bookingConfirm_container
    .bookingConfirm_container_bg_content_title {
    width: min(427px, 100%);
  }

  body.myBooking
    .bookingConfirm_container
    .btnWrapper
    .btnContainer.goldButton {
    max-width: 340px;
  }

  .bookingConfirm .bookingConfirm_container_bg_content_title {
    margin: 0;
    font-weight: 600;
    line-height: 1.5;
  }

  .bookingConfirm .bookingConfirm_container_bg_content_desc_container {
    margin: 36px 0 0;
  }

  .bookingConfirm .bookingConfirm_container_bg_content_desc {
    margin: 0;
    color: #fcfcfc;
    line-height: 1.4;
  }

  .bookingConfirm .bookingDetail_bottom {
    width: 100%;
    /* aspect-ratio: 1440 / 457; */
    position: absolute;
    text-align: center;
    bottom: 0px;
  }
  .bookingConfirm_container_bg_content_title {
    font-size: 24px;
    font-style: normal;
    font-weight: 400;

    margin-bottom: 16px;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-self: center;
    position: relative;
  }

  .bookingConfirm_container_bg_content_title::before {
    top: 0px;
  }

  .bookingConfirm_container_bg_content_desc_container {
    margin: 36px auto 0px;
  }

  .myBooking .bookingConfirm_container_bg_content_desc {
    margin-bottom: 36px;
  }

  .myBooking
    .bookingCancel_container
    .bookingConfirm_container_bg_content_desc {
    margin-top: 36px;
  }

  .bookingConfirm_container_bg_content_desc {
    text-align: center;
    max-width: 759px;
    margin-bottom: 16px;
    color: #29110b;

    /* EN/Body - Regular */
    font-family: Inter, "Noto Sans TC";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 140%; /* 22.4px */
    width: 100%;
  }

  .myBooking .bookingDetail_container {
    padding-top: 120px;
  }

  .bookingConfirm .bookingDetail_container {
    flex: 1 0 auto;
    min-height: 0;
    padding: 116px 16px min(164px, calc(28px + 34.872vw));
  }

  .bookingConfirm .bookingDetail_container::after {
    background-position: center bottom;
  }

  .bookingConfirm .bookingConfirm_container {
    height: auto;
  }

  .bookingConfirm .bookingConfirm_container_bg_content_title {
    line-height: 1.3;
  }

  .bookingConfirm .bookingConfirm_container_bg_content_desc {
    text-align: center;
  }

  .bookingConfirm .btnWrapper .btnContainer.goldButton {
    flex: 0 1 358px;
    width: 100%;
  }

  .bookingConfirm .bookingDetail_bottom {
    width: min(100%, 390px);
    max-width: 390px;
    aspect-ratio: 390 / 136;
    left: 50%;
    background-position: center top;
    background-size: 100% auto;
    transform: translateX(-50%);
  }
}

@media (max-width: 1023px) {
  .bookingConfirm .bookingConfirm_bg_stars,
  body.myBooking.bookingConfirmActive .myBookingBookingConfirm_bg_stars,
  body.myBooking
    .bookingDetail_container:has(
      > .bookingCancel_container:not([style*="display: none"])
    )
    .myBookingBookingCancel_bg_stars {
    display: none;
  }
}

@media (max-width: 960px) {
  body.myBooking.bookingConfirmActive .bookingDetail_container {
    height: auto;
    min-height: max(100svh, 654px);
    padding: 116px 16px 136px;
  }

  body.myBooking
    .bookingDetail_container:has(
      > .bookingCancel_container:not([style*="display: none"])
    ) {
    height: max(654px, calc(100svh - 190px));
    min-height: 654px;
    padding: 116px 16px 0;
  }

  body.myBooking
    :is(.myBookingBookingConfirm_container, .bookingCancel_container) {
    height: auto !important;
    min-height: 0;
  }

  body.myBooking
    :is(.myBookingBookingConfirm_container, .bookingCancel_container)
    .bookingConfirm_container_bg_content {
    width: min(608px, 100%);
    margin-inline: auto;
    padding: 0;
  }

  body.myBooking
    :is(.myBookingBookingConfirm_container, .bookingCancel_container)
    .bookingConfirm_container_bg_content_desc {
    width: 100%;
    text-align: center;
  }

  body.myBooking
    :is(.myBookingBookingConfirm_container, .bookingCancel_container)
    .bookingConfirm_container_bg_content_title {
    line-height: 1.3;
  }

  body.myBooking
    :is(.myBookingBookingConfirm_container, .bookingCancel_container)
    .divisonLine_green {
    height: 5.934px;
  }

  body.myBooking
    :is(.myBookingBookingConfirm_container, .bookingCancel_container)
    .btnWrapper
    .btnContainer.goldButton {
    flex: 0 0 44px;
    width: 100%;
    max-width: 358px;
    height: 44px;
    min-height: 44px;
  }

  body.myBooking
    .bookingDetail_container:has(
      > .myBookingBookingConfirm_container:not([style*="display: none"])
    )
    .myBookingBookingConfirm_bottom,
  body.myBooking
    .bookingDetail_container:has(
      > .bookingCancel_container:not([style*="display: none"])
    )
    .myBookingBookingCancel_bottom {
    width: min(100%, 390px);
    max-width: 390px;
    aspect-ratio: 390 / 136;
    background-position: center top;
    background-size: 100% auto;
  }

  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer {
    min-height: 190px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 24px;
    padding: 24px 10px;
  }

  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    .footer_left {
    align-items: center;
    width: 100%;
    font-family: Roboto, Arial, sans-serif;
    font-size: 12px;
    line-height: normal;
    gap: 24px;
  }

  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    .social-media-container {
    gap: 24px;
  }

  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    #link_to_facebook,
  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    #link_to_ins,
  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    #link_to_youtube {
    width: 32px;
    height: 32px;
  }

  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    .bottomLinks {
    width: 100%;
    row-gap: 5px;
    font-size: 12px;
    line-height: normal;
  }

  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    .bottomLinks
    .copyright {
    flex: 0 0 100%;
    margin-left: 0;
    text-align: center;
  }

  body.myBooking:has(
    .bookingDetail_container > .bookingCancel_container:not([style*="display: none"])
  )
    > footer
    .swire_logo {
    width: 273px;
    height: 29px;
  }
}
